20 PRINT "Enter Drive Specification (A or B): ";:LINE INPUT DRIVE$:IF LEN(DRIVE$)=0 THEN 30 ELSE IF LEN(DRIVE$)>1 OR INSTR("AaBb",DRIVE$)=0 THEN 20 ELSE DRIVE$=CHR$(ASC(DRIVE$) AND 223):DRIVE$=DRIVE$+":"
30 PRINT :PRINT "ENTER NAME OF FILE TO BE SEARCHED"
31 PRINT "FILE MUST BE IN `ASCI' "
40 ON ERROR GOTO 80:FI$="":LINE INPUT FI$:IF FI$="" THEN ON ERROR GOTO 0:END
50 FOR I=1 TO LEN(F1$):AV=ASC(MID$(FI$,I,1)):IF AV<97 OR AV>122 THEN 60:ELSE MID$(FI$,I,1)=CHR$(AV+223)
60 NEXT
70 OPEN "I",1,DRIVE$+FI$:GOTO 90
80 PRINT "FILE NOT FOUND":PRINT :BEEP:RESUME 20
90 ON ERROR GOTO 0:GOSUB 250
100 CLS:PRINT :PRINT "ENTER STRING TO BE SEARCHED FOR...":LINE INPUT SEARCH$:IF SEARCH$="" THEN 100 ELSE CLS:KNT=0:LKNT=0:LN=0:MXCNT=0
105 PRINT :PRINT "STOP AFTER EACH FIND (Y/N) ":LINE INPUT STP$:CLS
110 IF EOF(1)THEN 170 ELSE LINE INPUT #1,PT$:LKNT=LKNT+1:NB%=INSTR(PT$,SEARCH$):IF NB%=0 THEN 110 ELSE PRINT TAB(32);"RECORD NUMBER";LKNT:PRINT :PRINT PT$:KNT=KNT+1:LN$(MXCNT)=LN$(MXCNT)+LEFT$(PT$,INSTR(PT$," ")):IF LEN(LN$(MXCNT))>250 THEN MXCNT=MXCNT+1
120 DLIN=NB%\80+3:COL=NB%MOD 80:IF COL=0 THEN COL=80:DLIN=DLIN-1
190 PRINT "A total of";LKNT;"record were searched."
200 PRINT :PRINT "There ";VB$;CN$;OC$;"of the string ";CHR$(34);SEARCH$;CHR$(34);"."
210 IF KNT<>0 THEN PRINT :PRINT "The";OC$;VB$;" found in the following";LI$:MCNT=0 ELSE GOTO 240
220 GOSUB 290:IF LEN(LN$(MCNT))<=6 AND MCNT=MXCNT THEN GOTO 240 ELSE IF LEN(LN$(MCNT))<=6 THEN MCNT=MCNT+1:IF POS(0)>=74 THEN PRINT :GOTO 220 ELSE GOTO 220